home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / obero / oberon_lib.lha / oberon-a / source1.lha / source / Amiga / Bullet.mod < prev    next >
Text File  |  1994-08-08  |  3KB  |  120 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Bullet.mod $
  4.   Description: Interface to bullet.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.1 $
  8.       $Author: fjc $
  9.         $Date: 1994/08/08 01:14:19 $
  10.  
  11.   $VER: bullet_protos.h 38.0 (19.6.92)
  12.   Includes Release 40.15
  13.  
  14.   (C) Copyright 1990-1993 Commodore-Amiga, Inc.
  15.       All Rights Reserved
  16.  
  17.   Oberon-A Interface Copyright © 1994, Frank Copeland.
  18.   This file is part of the Oberon-A Interface.
  19.   See Oberon-A.doc for conditions of use and distribution.
  20.  
  21. *************************************************************************)
  22.  
  23. MODULE Bullet;
  24.  
  25. (*
  26. ** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
  27. ** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
  28. ** $V- OvflChk       $Z- ZeroVars
  29. *)
  30.  
  31. IMPORT
  32.   E := Exec,
  33.   U := Utility,
  34.   DF := DiskFont,
  35.   SYS := SYSTEM;
  36.  
  37.  
  38. (**-- Library Base variable --------------------------------------------*)
  39.  
  40. CONST
  41.  
  42.   name * = "bullet.library";
  43.  
  44. TYPE
  45.  
  46.   BulletBasePtr* = CPOINTER TO BulletBase;
  47.   BulletBase* = RECORD (E.Library) END;
  48.  
  49. VAR
  50.  
  51.   base* : BulletBasePtr;
  52.  
  53.  
  54. (**-- Library Functions ------------------------------------------------*)
  55.  
  56. LIBCALL (base : BulletBasePtr) OpenEngine * ()
  57.   : DF.GlyphEnginePtr;
  58.   -30;
  59. LIBCALL (base : BulletBasePtr) CloseEngine *
  60.   ( glyphEngine [8] : DF.GlyphEnginePtr );
  61.   -36;
  62. LIBCALL (base : BulletBasePtr) SetInfoA *
  63.   ( glyphEngine [8] : DF.GlyphEnginePtr;
  64.     tagList     [9] : ARRAY OF U.TagItem )
  65.   : BOOLEAN;
  66.   -42;
  67. LIBCALL (base : BulletBasePtr) SetInfo *
  68.   ( glyphEngine [8]  : DF.GlyphEnginePtr;
  69.     tagList     [9]..: U.Tag )
  70.   : BOOLEAN;
  71.   -42;
  72. LIBCALL (base : BulletBasePtr) ObtainInfoA *
  73.   ( glyphEngine [8] : DF.GlyphEnginePtr;
  74.     tagList     [9] : ARRAY OF U.TagItem )
  75.   : BOOLEAN;
  76.   -48;
  77. LIBCALL (base : BulletBasePtr) ObtainInfo *
  78.   ( glyphEngine [8]  : DF.GlyphEnginePtr;
  79.     tagList     [9]..: U.Tag )
  80.   : BOOLEAN;
  81.   -48;
  82. LIBCALL (base : BulletBasePtr) ReleaseInfoA *
  83.   ( glyphEngine [8] : DF.GlyphEnginePtr;
  84.     tagList     [9] : ARRAY OF U.TagItem )
  85.   : BOOLEAN;
  86.   -54;
  87. LIBCALL (base : BulletBasePtr) ReleaseInfo *
  88.   ( glyphEngine [8]  : DF.GlyphEnginePtr;
  89.     tagList     [9]..: U.Tag )
  90.   : BOOLEAN;
  91.   -54;
  92.  
  93. (**-- Library Base variable --------------------------------------------*)
  94.  
  95. (**-----------------------------------*)
  96. PROCEDURE* CloseLib ();
  97.  
  98. BEGIN (* CloseLib *)
  99.   IF base # NIL THEN E.base.CloseLibrary (base) END
  100. END CloseLib;
  101.  
  102. (**-----------------------------------*)
  103. PROCEDURE OpenLib * (mustOpen : BOOLEAN);
  104.  
  105. BEGIN (* OpenLib *)
  106.   IF base = NIL THEN
  107.     base :=
  108.       SYS.VAL (
  109.         BulletBasePtr,
  110.         E.base.OpenLibrary (name, E.libraryMinimum));
  111.     IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
  112.     ELSIF mustOpen THEN HALT (100)
  113.     END;
  114.   END;
  115. END OpenLib;
  116.  
  117. BEGIN
  118.   base := NIL
  119. END Bullet.
  120.